From a7cbbaf8fcb35bc0b53f5386d42135eb0d97a12f Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Mon, 5 Dec 2016 23:07:56 +0100 Subject: [PATCH] gsk: Pass texture coordinates to Vulkan renderer We just render the coordinates as color, we don't do anything with them yet. --- gsk/gskvulkanpipeline.c | 10 ++++++++-- gsk/gskvulkanrenderer.c | 12 ++++++------ gsk/resources/vulkan/blit.frag.glsl | 4 +++- gsk/resources/vulkan/blit.frag.spv | Bin 420 -> 564 bytes gsk/resources/vulkan/blit.vert.glsl | 6 +++++- gsk/resources/vulkan/blit.vert.spv | Bin 692 -> 848 bytes 6 files changed, 22 insertions(+), 10 deletions(-) diff --git a/gsk/gskvulkanpipeline.c b/gsk/gskvulkanpipeline.c index 8da3f27b44..93f0cf71d3 100644 --- a/gsk/gskvulkanpipeline.c +++ b/gsk/gskvulkanpipeline.c @@ -95,17 +95,23 @@ gsk_vulkan_pipeline_new (GdkVulkanContext *context, .pVertexBindingDescriptions = (VkVertexInputBindingDescription[]) { { .binding = 0, - .stride = 2 * sizeof(float), + .stride = 4 * sizeof (float), .inputRate = VK_VERTEX_INPUT_RATE_VERTEX } }, - .vertexAttributeDescriptionCount = 1, + .vertexAttributeDescriptionCount = 2, .pVertexAttributeDescriptions = (VkVertexInputAttributeDescription[]) { { .location = 0, .binding = 0, .format = VK_FORMAT_R32G32_SFLOAT, .offset = 0, + }, + { + .location = 1, + .binding = 0, + .format = VK_FORMAT_R32G32_SFLOAT, + .offset = 2 * sizeof (float), } } }, diff --git a/gsk/gskvulkanrenderer.c b/gsk/gskvulkanrenderer.c index dddcc5a7ff..d8464497f2 100644 --- a/gsk/gskvulkanrenderer.c +++ b/gsk/gskvulkanrenderer.c @@ -277,13 +277,13 @@ gsk_vulkan_renderer_do_render_commands (GskVulkanRenderer *self, { GskVulkanBuffer *buffer; float pts[] = { - -1.0, -1.0, - 1.0, -1.0, - -1.0, 1.0, + -1.0, -1.0, 0.0, 0.0, + 1.0, -1.0, 1.0, 0.0, + -1.0, 1.0, 0.0, 1.0, - -1.0, 1.0, - 1.0, -1.0, - 1.0, 1.0 + -1.0, 1.0, 0.0, 1.0, + 1.0, -1.0, 1.0, 0.0, + 1.0, 1.0, 1.0, 1.0 }; guchar *data; diff --git a/gsk/resources/vulkan/blit.frag.glsl b/gsk/resources/vulkan/blit.frag.glsl index 94f76e4f16..acc86807dd 100644 --- a/gsk/resources/vulkan/blit.frag.glsl +++ b/gsk/resources/vulkan/blit.frag.glsl @@ -1,8 +1,10 @@ #version 420 core +layout(location = 0) in vec2 inTexCoord; + layout(location = 0) out vec4 color; void main() { - color = vec4(1.0, 1.0, 0.0, 1.0); + color = vec4 (inTexCoord, 0.0, 1.0); } diff --git a/gsk/resources/vulkan/blit.frag.spv b/gsk/resources/vulkan/blit.frag.spv index 76adb08511b6bdcfe10cd0a2162059122ee1a1f0..05fd46999761579f2fccfac3df43a2b6d53c7a1a 100644 GIT binary patch delta 307 zcmXw!Jqp4=5QSe%*7%e7Tci`gN~{$@)WX76!Bkd)7AZ`?%1*%(v#_v!S|Lp z%g5|{JIu^J-Io`-rGXDPJQZ~Fa2)yY0L%H1q`aa^f;@f<4GaQ`B;B2^t1P=5fi+82 z&?5@zAb;;~5id0wWl|!2>N>MSPSZ(2Y@7aXCV>FvuEr{o8(c@$Xy delta 140 zcmdnOvV@tJnMs+Qfq@YSIT&~+@|p^>F|aT&fN^eOW*(5qz&SCpnbjRA#5tLjG1^8O z$YKKubAjX-8th?wZZMyLL5G1I2pJf7fEc6(gh6s3dh!NF84)`MW(H0m2c+OH&|(W9 F1^~po3;6&5 diff --git a/gsk/resources/vulkan/blit.vert.glsl b/gsk/resources/vulkan/blit.vert.glsl index ae450004d2..3865405429 100644 --- a/gsk/resources/vulkan/blit.vert.glsl +++ b/gsk/resources/vulkan/blit.vert.glsl @@ -1,11 +1,15 @@ #version 420 core layout(location = 0) in vec2 inPosition; +layout(location = 1) in vec2 inTexCoord; + +layout(location = 0) out vec2 outTexCoord; out gl_PerVertex { vec4 gl_Position; }; void main() { - gl_Position = vec4(inPosition, 0.0, 1.0); + gl_Position = vec4 (inPosition, 0.0, 1.0); + outTexCoord = inTexCoord; } diff --git a/gsk/resources/vulkan/blit.vert.spv b/gsk/resources/vulkan/blit.vert.spv index 41ea691e5bffea8316a0a152b8a8fbfcf1f74172..66413971d487a02b58404452a55802fad4e79f59 100644 GIT binary patch delta 220 zcmdnOdV!6XnMs+Qfq@YSIT&On@|wzXGJpUJ5a%Xl=7HE;K+F%sl0YmqF><>aD+4Q- zlV4gAl3L-MpI?*$6k%nM0xHPNg9%OMV>FU=2bu)ZCkMnJ0OEs`f%uG*Z5i+DDgZ?! zfIMa(<^^JFC?BK?BnIO10cnsf#>tXQlT~biA|RF0P*FReI*@7*|1Z!Z7C;OD{_z+7 delta 69 zcmcb>wuP0KnMs+Qfq@YSIT$1+@|ubRc|gDd#JP!?c_20y5c5w=+&